home *** CD-ROM | disk | FTP | other *** search
/ Macwelt 1 / Macwelt DVD 1.toast / Software für Mac-OS X / Entwickler-Tools / netbeans / modules / ext / djava.jar / koala / dynamicjava / interpreter / Main.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-03-14  |  4.0 KB  |  192 lines

  1. package koala.dynamicjava.interpreter;
  2.  
  3. import java.io.FileInputStream;
  4. import java.io.FileNotFoundException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.io.Reader;
  8. import java.io.StringReader;
  9. import koala.dynamicjava.parser.wrapper.JavaCCParserFactory;
  10.  
  11. public class Main {
  12.    private static String appname;
  13.  
  14.    public static void main(String[] var0) {
  15.       appname = var0[0];
  16.       String var1 = "standard input";
  17.       String var2 = "";
  18.       String var3 = "";
  19.       Object var4 = System.in;
  20.       String var5 = null;
  21.       String var6 = null;
  22.       TreeInterpreter var7 = new TreeInterpreter(new JavaCCParserFactory());
  23.       var7.addLibrarySuffix(".java");
  24.       int var8 = 1;
  25.  
  26.       while(var0.length > var8) {
  27.          if (var0[var8].equals("-lp")) {
  28.             ++var8;
  29.             if (var0.length <= var8) {
  30.                usage();
  31.                return;
  32.             }
  33.  
  34.             var2 = var0[var8++];
  35.          } else if (var0[var8].equals("-cp")) {
  36.             ++var8;
  37.             if (var0.length <= var8) {
  38.                usage();
  39.                return;
  40.             }
  41.  
  42.             var3 = var0[var8++];
  43.          } else {
  44.             if (!var0[var8].equals("-i")) {
  45.                if (var0[var8].equals("-h")) {
  46.                   usage();
  47.                   return;
  48.                }
  49.  
  50.                if (var0[var8].equals("-c")) {
  51.                   ++var8;
  52.                   if (var0.length <= var8) {
  53.                      usage();
  54.                      return;
  55.                   }
  56.  
  57.                   var6 = var0[var8++] + ".main(new String[] {";
  58.                   if (var8 < var0.length) {
  59.                      var6 = var6 + '"' + var0[var8++] + '"';
  60.                   }
  61.  
  62.                   while(var8 < var0.length) {
  63.                      var6 = var6 + ", " + '"' + var0[var8] + '"';
  64.                      ++var8;
  65.                   }
  66.  
  67.                   var6 = var6 + " });";
  68.                }
  69.                break;
  70.             }
  71.  
  72.             ++var8;
  73.             if (var0.length <= var8) {
  74.                usage();
  75.                return;
  76.             }
  77.  
  78.             var5 = var0[var8++];
  79.          }
  80.       }
  81.  
  82.       if (var0.length > var8 + 1) {
  83.          usage();
  84.       } else {
  85.          setLibraryPath(var7, var2);
  86.          setClassPath(var7, var3);
  87.          if (var5 != null) {
  88.             try {
  89.                FileInputStream var9 = new FileInputStream(var5);
  90.  
  91.                try {
  92.                   var7.interpret(var9, var5);
  93.                } catch (InterpreterException var15) {
  94.                   System.err.println(var15.getMessage());
  95.                } catch (Throwable var16) {
  96.                   System.err.println(var16);
  97.                }
  98.             } catch (FileNotFoundException var17) {
  99.                System.out.println("File " + var5 + " not found.");
  100.                return;
  101.             }
  102.          }
  103.  
  104.          if (var0.length > var8) {
  105.             var1 = var0[var8];
  106.  
  107.             try {
  108.                var4 = new FileInputStream(var1);
  109.             } catch (FileNotFoundException var14) {
  110.                System.out.println("File " + var1 + " not found.");
  111.                return;
  112.             }
  113.          }
  114.  
  115.          try {
  116.             if (var6 != null) {
  117.                var7.interpret(new StringReader(var6), "main method call");
  118.             } else {
  119.                if (var4 == System.in) {
  120.                   System.out.println("Reading from standard input");
  121.  
  122.                   while(true) {
  123.                      String var25 = "";
  124.                      InputStreamReader var10 = new InputStreamReader((InputStream)var4);
  125.                      int var11 = 0;
  126.  
  127.                      int var13;
  128.                      for(int var12 = 0; var11 < 2 && var12 < 2; var25 = var25 + (char)var13) {
  129.                         var13 = ((Reader)var10).read();
  130.                         if (var13 == 10) {
  131.                            ++var11;
  132.                         } else if (var13 == 13) {
  133.                            ++var12;
  134.                         } else {
  135.                            var11 = 0;
  136.                            var12 = 0;
  137.                         }
  138.                      }
  139.  
  140.                      Object var26 = var7.interpret(new StringReader(var25), var1);
  141.                      System.out.println("=> " + var26);
  142.                   }
  143.                }
  144.  
  145.                var7.interpret((InputStream)var4, var1);
  146.             }
  147.          } catch (InterpreterException var18) {
  148.             System.err.println(var18.getMessage());
  149.          } catch (Throwable var19) {
  150.             var19.printStackTrace();
  151.             System.err.println(var19);
  152.          }
  153.  
  154.          if (var4 == System.in) {
  155.             System.out.println("Interactive loop stopped");
  156.          }
  157.  
  158.       }
  159.    }
  160.  
  161.    private static void setLibraryPath(Interpreter var0, String var1) {
  162.       int var2;
  163.       while((var2 = var1.indexOf(58)) != -1 || (var2 = var1.indexOf(59)) != -1) {
  164.          var0.addLibraryPath(var1.substring(0, var2));
  165.          var1 = var1.substring(var2 + 1, var1.length());
  166.       }
  167.  
  168.       var0.addLibraryPath(var1);
  169.    }
  170.  
  171.    private static void setClassPath(Interpreter var0, String var1) {
  172.       int var2;
  173.       while((var2 = var1.indexOf(58)) != -1 || (var2 = var1.indexOf(59)) != -1) {
  174.          var0.addClassPath(var1.substring(0, var2));
  175.          var1 = var1.substring(var2 + 1, var1.length());
  176.       }
  177.  
  178.       var0.addClassPath(var1);
  179.    }
  180.  
  181.    private static void usage() {
  182.       System.out.println("Usage:");
  183.       System.out.println("       " + appname + " [options] [file]");
  184.       System.out.println("     or");
  185.       System.out.println("       " + appname + " [options] -c classname [args ...]");
  186.       System.out.println("Options:");
  187.       System.out.println("       -cp path   the class path ((semi)colon separated paths)");
  188.       System.out.println("       -lp path   the library path ((semi)colon separated paths)");
  189.       System.out.println("       -i file    the initialization file");
  190.    }
  191. }
  192.